﻿#pragma once
#ifndef WRAPPSERVICEACTIVATOR_H
#define WRAPPSERVICEACTIVATOR_H

#include "WRClassActivator.h"
#include <QDomElement>

//应用程序服务激活器类型标识 {F8D4942B-EBDE-4F22-BA3B-4769872F0970}
#define WRAppServiceActivatorType QUuid(0xf8d4942b, 0xebde, 0x4f22, 0xba, 0x3b, 0x47, 0x69, 0x87, 0x2f, 0x9, 0x70)

namespace WRTypes
{
    //获取应用程序服务激活器类型。
    WRSOFT_UTILITY_API WRType* appServiceActivator(void);
}

//表示应用程序服务。
class WRAppService;

//表示应用程序服务激活器。
class WRSOFT_UTILITY_CLASS WRAppServiceActivator : public WRClassActivator
{
private:
    //禁用复制构造函数和赋值操作符。
    Q_DISABLE_COPY(WRAppServiceActivator)

protected:
    //初始化应用服务激活器。
    inline WRAppServiceActivator(void)
    {
        //add code here
    }
    //释放当前对象所占用的相关资源。
    virtual ~WRAppServiceActivator(void)
    {
        //add code here
    }

public:
    //获取当前对象类型。
    WRType* type(void) const;
    //创建应用程序服务。
    virtual WRAppService* create(const QDomElement& config) = 0;
};

#endif // WRAPPSERVICEACTIVATOR_H
